package simulador;
import java.util.HashMap;
import java.util.LinkedList;;

public class MapaTransicao{

	HashMap<Estado,LinkedList<Transicao>> mapa=new HashMap<Estado, LinkedList<Transicao>>();
	
	public MapaTransicao()
	{
		
	}
	
	public void cleanAll()
	{
		mapa.clear();
	}
	
	public void addTransicao(Transicao trs,Estado estadoOrigem)
	{		
		LinkedList<Transicao> lst=mapa.get(estadoOrigem);
		
		if(lst==null)
		{
			lst=new LinkedList<Transicao>();
		}
		
		lst.add(trs);
		
		mapa.put(estadoOrigem, lst);
	}
	
	public Estado transitar(Estado estadoAtual,String padrao)
	{
		LinkedList<Transicao> lstCaminhos=mapa.get(estadoAtual);
		
		for(Transicao tr : lstCaminhos)
		{
			if(tr.padrao.equals(padrao))
			{
				return tr.destino;
			}
		}
		
		return null;
	}
}
